package com.eduplatform.dto;

import lombok.Data;

import java.time.LocalDateTime;
import java.util.List;

/**
 * 考试答卷数据传输对象
 */
@Data
public class ExamPaperDTO {

    /**
     * 主键ID
     */
    private Long id;

    /**
     * 考试ID
     */
    private Long examId;

    /**
     * 考试名称
     */
    private String examName;

    /**
     * 学生ID
     */
    private Long studentId;

    /**
     * 学生姓名
     */
    private String studentName;

    /**
     * 学校ID
     */
    private Long schoolId;

    /**
     * 学校名称
     */
    private String schoolName;

    /**
     * 科目ID
     */
    private Long subjectId;

    /**
     * 科目名称
     */
    private String subjectName;

    /**
     * 教育阶段
     */
    private Integer educationLevel;

    /**
     * 教育阶段名称
     */
    private String educationLevelName;

    /**
     * 开始时间
     */
    private LocalDateTime startTime;

    /**
     * 提交时间
     */
    private LocalDateTime submitTime;

    /**
     * 总分
     */
    private Integer totalScore;

    /**
     * 得分
     */
    private Integer score;

    /**
     * 状态：0-进行中，1-已提交，2-已批改
     */
    private Integer status;

    /**
     * 创建时间
     */
    private LocalDateTime createTime;

    /**
     * 更新时间
     */
    private LocalDateTime updateTime;

    /**
     * 答题记录列表
     */
    private List<ExamAnswerDTO> answers;

    /**
     * 获取状态名称
     */
    public String getStatusName() {
        if (status == null) {
            return "";
        }
        switch (status) {
            case 0:
                return "进行中";
            case 1:
                return "已提交";
            case 2:
                return "已批改";
            default:
                return "未知";
        }
    }

    /**
     * 获取教育阶段名称
     */
    public String getEducationLevelName() {
        if (educationLevel == null) {
            return "";
        }
        switch (educationLevel) {
            case 1:
                return "小学";
            case 2:
                return "初中";
            case 3:
                return "高中";
            default:
                return "未知";
        }
    }
}